package com.tanhua.manage.job;

import com.tanhua.manage.service.AnalysisByDayService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 * 定时执行的任务类
 */
@Component
@Slf4j
public class AnalysisJob {
    // 注入日表service
    @Autowired
    private AnalysisByDayService analysisByDayService;

    /**
     * 定时执行的任务方法：
     * 1、简单测试：每5秒钟调用一次execute()方法
     * 2. @Scheduled 指定任务调度表达式, 以日历方式执行任务
     *    秒 分钟  小时  日  月  周
     * 4. 注意
     *    日与周必须有一个不指定，用问号表示?
     *    cron = "0/5 * * * * ?  每5秒执行一次
     *    cron = "0,1 * * * * ?  每分钟的第1秒、第2秒执行
     *    cron = "0-2 * * * * ?  每分钟的第1秒到第3秒执行
     */
    @Scheduled(cron = "0 0 0/4 * * ?") // 每4小时执行一次
    public void execute(){
        //System.out.println(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
        log.info("定时任务执行开始：");
        // 查询日志表(tb_log)数据，更新到日表中（tb_analysis_by_day）
        analysisByDayService.analysis();
    }
}
